package com.softoa.mapper;

import com.softoa.pojo.Department;
import com.softoa.pojo.User;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface UserMapper {
    /**
     * 根据用户编号进行查询，返回用户全部信息
     *
     * @param user 具有userId
     * @return 返回一个user对象
     */
    User userSelectOne(User user);

    /**
     * 将所有在职用户全部查询出来
     *
     * @return 返回所有在职用户
     */
    java.util.List<User> userSelectList();

    /**
     * 根据员工所在部门编号，查询该部门下所有的员工，该方法用在了部门查询自己员工信息
     *
     * @param deptId 部门id
     * @return 返回员工列表
     */
    java.util.List<User> userByDeptList(int deptId);

    /**
     * 添加用户
     *
     * @param user 需要添加的对象
     * @return 是否添加成功1/0
     */
    int userInsert(User user);

    /**
     * 批量修改删除状态操作。将状态改为“离职”
     *
     * @param users 需要修改删除状态的员工编号数组
     * @return 返回是否修改成功1/0
     */
    int userDeleteMultiple(int[] users);

    /**
     * 修改员工信息，传入一个员工对象
     *
     * @param user 传入的员工对象
     * @return 返回数值、1代表成功修改，0代表修改失败
     */
    int userUpdate(User user);

    /**
     * 通过员工id查询该员工的信息，可以查询到所属部门的信息
     *
     * @param userId 需要查询的员工的id
     * @return 返回查询到的用户对象
     */
    User userOne(int userId);
}
